package cn.itcast.activiti.common;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;

/**
 * 操作流程引擎的工具类
 * @author LEE.SIU.WAH
 * @email lixiaohua7@163.com
 * @date 2016年5月6日 下午2:57:45
 * @version 1.0
 */

public class ProcessEngineUtils {

	/** 定义静态的流程引擎(只需要个流程引擎对象) */
	private static ProcessEngine processEngine;
	/** 静态初化块 */
	static{
		/** 创建流程引擎配置信息对象  */
		ProcessEngineConfiguration pec=ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
		
		/** 调用ProcessEngineConfiguration对象中方法进行设置信息 */
		/** 设置数据库的类型 */
		pec.setDatabaseType("mysql");
		/** 
		 * 设置创建数据库表的方式:
		 * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE(true): 如果没有数据库表就会创建,有的话就更新
		 * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE(false): 不创建数据库表.
		 * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP(create-drop): 先创建数据库表，然后再删除
		 */
		pec.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
		/** 设置数据库驱动 */
		pec.setJdbcDriver("com.mysql.jdbc.Driver");
		/** 设置连接数据库的URL */
		pec.setJdbcUrl("jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf-8");
		/** 设置连接数据库用户名 */
		pec.setJdbcUsername("root");
		/** 设置连接数据库密码 */
		pec.setJdbcPassword("111111");
		
		/** 设置节点上的字体 */
		pec.setActivityFontName("宋体");
		/** 设置连接线上的字体 */
		pec.setLabelFontName("宋体");
		/** 设置XML文件编码 */
		pec.setXmlEncoding("utf-8");
		
		/** 构建流程引擎对象 */
		processEngine=pec.buildProcessEngine();
	}
	
	public static ProcessEngine getProcessEngine(){
		
		return processEngine;
		
	}
	
}
